Imports Clo = Enhancements.Core.Logging
Imports Exe = Enhancements.Basic.Expressions
Imports Ref = System.Reflection
Imports Sys = System

Namespace Enhancements.Basic.Expressions.Operators
    ''' <summary>The exception that is thrown when a parsing for an operator token is not possible.</summary>
    <Serializable(), DebuggerStepThrough()> _
    Public Class OperatorParseException
        Inherits Exe.TokenParseException

        Friend Sub New(ByVal _expression As System.String, ByVal _expressionBeginIndex As Sys.Int32)
            MyBase.New(_expression, _expressionBeginIndex)
        End Sub

        Friend Overloads Shared Function ___Create(ByVal _expression As System.String, ByVal _expressionBeginIndex As Sys.Int32) As OperatorParseException
            Dim _returnValue As OperatorParseException = New OperatorParseException(_expression, _expressionBeginIndex)

            Return _returnValue
        End Function

        ''' <summary>Throws an exception.</summary>
        ''' <exception cref="IsNullException"> </exception>
        ''' <exception cref="OperatorParseException"> </exception>
        Friend Overloads Shared Sub ___Throw(ByVal _exception As OperatorParseException)
            _exception.IsNullNot("_exception", True)

            Throw _exception
        End Sub

    End Class
End Namespace
